<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/4/2
 * Time: 16:27
 */

namespace app\index\controller;

# 数据库操作
use app\index\model\DanweiTj;
use think\facade\Config;
use think\Db;

class Demo8
{
    # 1.单条查询
    public function find(){
        /**
         * Db类数据库操作的入口类
         * 功能：静态调用think\db\Query.php类中的查询方法实现基本操作
         * table()：选择数据库
         * name(): 可以不写表的前缀
         * where()：设置查询条件 表达式 数组
         * 1.单个条件 使用表达式
         * 2.对于多个条件使用数组
         * find()返回符合条件的第一条记录
         *
         */
//        $res = Db::table('tj_danwei_tj')  // table需要表的全称
//        $res = Db::name('danwei_tj')
//            ->field('id,full_area_name,name,mob')
//            ->where('id', '=', 1117)
//            ->find();
        $res = Db::name('danwei_tj')
            ->field(['id'=>'编号','full_area_name'=>'全称','name'=>'联系人','mob'=>'联系人手机'])
//            ->where('id', '=', 1117)
            ->find(1117);
        dump(is_null($res) ? '没有找到' : $res);
    }

    # 2.多条查询
    public function select(){
        // select()返回的是一个二维数组，没有数据返回是一个空数据
        $res = Db::name('danwei_tj')
            ->field(['id' => '编号', 'full_area_name' => '全称', 'name' => '联系人', 'mob' => '联系人手机'])
            ->where([
                ['ut_id', '=', 3661],
                ['userid', '>', 0]
            ])->select();
        dump(is_null($res) ? '没有找到' : $res);
    }

    # 3.单条插入
    public function insert(){
        Config::set('app_debug', true);
        Config::set('app_trace', true);
        $data = [
            'name'=>'福州联通',
            'add_time'=>time(),
            'sheng_id'=>13,
            'shi_id'=>15,
            'areacode'=>'0591',
            'full_city_name'=>'福建->福州'
        ];
//        return Db::name('big_customer')->insert($data);
        // 只有数据库类型为mysql的时候,才可以传入true
//        return Db::name('big_customer')->insert($data, true);
        return Db::name('big_customer')->insertGetId($data);
    }

    # 4.多条插入
    public function insertAll(){
        Config::set('app_debug', true);
        Config::set('app_trace', true);
        $data = [
            ['name'=>'福州联通1', 'add_time'=>time(), 'sheng_id'=>13, 'shi_id'=>15, 'areacode'=>'0591', 'full_city_name'=>'福建->福州'],
            ['name'=>'福州联通3', 'add_time'=>time(), 'sheng_id'=>13, 'shi_id'=>15, 'areacode'=>'0591', 'full_city_name'=>'福建->福州'],
            ['name'=>'福州联通5', 'add_time'=>time(), 'sheng_id'=>13, 'shi_id'=>15, 'areacode'=>'0591', 'full_city_name'=>'福建->福州']
        ];
        return Db::name('big_customer')->insertAll($data);
    }

    # 5.更新操作
    public function update(){
        // update()必须要有更新条件
//        return Db::name('big_customer')
//            ->where('id',15)
//            ->update(['name'=>'可靠的']);
        // 如果更新条件是主键的话，可以直接把主键写到更新数组中
        return Db::name('big_customer')
            ->update(['name'=>'看看', 'id'=>16]);
    }

    # 6.删除操作
    public function delete(){
//        return Db::name('big_customer')->where('id',17)->delete();

        return Db::name('big_customer')->delete(18);
    }

    # 7.原生查询
    public function query(){
        $sql = "select name,add_time,sheng_id,areacode,full_city_name from tj_big_customer";
        dump(Db::query($sql));
    }

    # 8.原生写操作：更新、删除、修改
    public function execute(){
        $sql = "update tj_big_customer set full_city_name='中国-福建' where id=19 ";
        return Db::execute($sql);
    }

    # 9.使用模型查询
    public function modelcx(){
//        $data = DanweiTj::field(['id'=>'编号','full_area_name'=>'全称','name'=>'联系人','mob'=>'联系人手机'])
//            ->find(1118);
        $data = DanweiTj::all([1117,1112,1118]);
        dump($data);
    }
}